package com.tangjiali.collections;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Random;

public class Solution {
    public static void main(String[] args) {
        //1.获取随机数字集合
        ArrayList<Integer> integers = getNoOrder(10,50);
        System.out.println(integers);
        //2.对集合中的数据进行升序排序
        getAsc(integers);
        System.out.println(integers);
        //3.对集合中的数据进行降序排序(要实现排序，不可以倒序遍历实现)
        getDesc(integers);
        System.out.println(integers);
    }


    /**
     *      降序排序
     * @param integers
     */
    private static void getDesc(ArrayList<Integer> integers) {
        for (int i = 0; i < integers.size()-1; i++) {
            for (int j = 0; j < integers.size()-1-i; j++) {
                if (integers.get(j) < integers.get(j+1)){
                    int tem = integers.get(j);
                    integers.set(j,integers.get(j+1));
                    integers.set(j+1,tem);
                }
            }
        }
    }

    /**
     *      升序排序
     * @param integers  被操作集合
     * @return
     */
    private static void getAsc(ArrayList<Integer> integers) {
        for (int i = 0; i < integers.size()-1; i++) {
            for (int j = 0; j < integers.size()-1-i; j++) {
                if (integers.get(j) > integers.get(j+1)){
                    int tem = integers.get(j);
                    integers.set(j,integers.get(j+1));
                    integers.set(j+1,tem);
                }
            }
        }
    }




    /**
     *      获取指定长度和范围的随机集合
     * @param num   集合长度
     * @param max   取值范围 0—max
     * @return
     */
    static ArrayList<Integer> getNoOrder(int num,int max){
        Random r = new Random();
        ArrayList<Integer> integers = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            integers.add(r.nextInt(max+1));
        }
        return integers;
    }
}
